/*Copyright (C) 2013-2021 LZE*/
#include<bits/stdc++.h>
#define INF 0x7fffffff
#define mod 1000000007
#define eps 1e-6
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
int T;
struct Edge{
    int to,next;
}edge[501000];
struct Node{
    char ch;
    bool word;
    Node(){
        word=false;
    }
}node[200010];
int head[200010],num=0,node_num=0;
void add(int u,int v){
    edge[++num].to=v;
    edge[num].next=head[u];
    head[u]=num;
}
void insert(string word) {
    int len=word.length();
    int cnt=0;
    bool have_node;
    int step=0;//root
    while(cnt<len){
        have_node=false;
        for(int i=head[step];i;i=edge[i].next){
            if(node[edge[i].to].ch==word[cnt]){
                step=i;
                have_node=true;
                break;
            }
        }
        if(!have_node){
            add(step,++node_num);
            node[node_num].ch=word[cnt];
            step=node_num;
        }
        ++cnt;
    }
    node[step].word=true;
}
bool search(string word) {
    int len=word.length();
    int cnt=0;
    bool have_node;
    int step=0;//root
    while(cnt<len){
        have_node=false;
        for(int i=head[step];i;i=edge[i].next){
            if(node[edge[i].to].ch==word[cnt]){
                step=i;
                have_node=true;
                break;
            }
        }
        if(!have_node){
            return false;
        }
        ++cnt;
    }
    return node[step].word;
}
bool startsWith(string prefix) {
    int len=prefix.length();
    int cnt=0;
    bool have_node;
    int step=0;//root
    while(cnt<len){
        have_node=false;
        for(int i=head[step];i;i=edge[i].next){
            if(node[edge[i].to].ch==prefix[cnt]){
                step=i;
                have_node=true;
                break;
            }
        }
        if(!have_node){
            return false;
        }
        ++cnt;
    }
    return true;
}
int main() {
	scanf("%d",&T);
    string act;
    while(T--){
        cin>>act;
        if(act[1]=='n'){
            //insert
            cin>>act;
            insert(act);
        }else if(act[1]=='e'){
            //search
            cin>>act;
            cout<<search(act)<<endl;
        }else if(act[1]=='t'){
            //startsWith
            cin>>act;
            cout<<startsWith(act)<<endl;
        }
    }
	return 0;
}
